From b1d2df5c9ccadb058d6edb9310329396d90c6315 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:02:57 -0600 Subject: [PATCH] teach lowranceusr about track segments (#1306) * teach lowranceusr about track segments. lowranceusr versions 2 & 3 have a continuous flag used to indicate dicontinuities in a trail. The lowranceusr version 2 & 3 reader now flags trail discontinuities as new track segements. The lowranceusr version 2 & 3 writer now flags new track segments as discontinuities. Also fix two subtle bugs: 1) when reading a version 2 or 3 trail with the break option we would fail to break the trail if the discontinuity was at the start of a section other than the first section. 2) when writing a version 2 or 3 trail with the merge option if the number of points exceeded MAX_TRAIL_POINTS we would write a header that indicated MAX_TRAIL_POINTS but actually write MAX_TRAIL_POINTS + 1. * add lowranceusr test for track segments. --- lowranceusr.cc | 44 +- lowranceusr.h | 2 +- reference/lowrance-v2-merge~usr.gpx | 3766 ++++++++++++++++++++++++++ reference/lowrance-v2.gpx | 3770 +++++++++++++++++++++++++++ testo.d/lowranceusr.test | 13 + 5 files changed, 7577 insertions(+), 18 deletions(-) create mode 100644 reference/lowrance-v2-merge~usr.gpx create mode 100644 reference/lowrance-v2.gpx diff --git a/lowranceusr.cc b/lowranceusr.cc index c264a7956..92f533a18 100644 --- a/lowranceusr.cc +++ b/lowranceusr.cc @@ -989,16 +989,20 @@ LowranceusrFormat::lowranceusr_parse_trail(int* trail_num) wpt_tmp->latitude = lat_mm_to_deg(gbfgetint32(file_in)); wpt_tmp->longitude = lon_mm_to_deg(gbfgetint32(file_in)); - // It's not clear if this should be the continuous global or - // a local continuous_flag. char continuous_flag = gbfgetc(file_in); - if (!continuous_flag && opt_seg_break && j) { - /* option to break trails into segments was specified */ - auto* trk_tmp = new route_head; - trk_tmp->rte_num = ++(*trail_num); - trk_tmp->rte_name = trk_head->rte_name; - track_add_head(trk_tmp); - trk_head = trk_tmp; + if (!continuous_flag) { + if (opt_seg_break) { + /* option to break trails into segments was specified */ + if (!trk_head->rte_waypt_empty()) { + auto* trk_tmp = new route_head; + trk_tmp->rte_num = ++(*trail_num); + trk_tmp->rte_name = trk_head->rte_name; + track_add_head(trk_tmp); + trk_head = trk_tmp; + } + } else { + wpt_tmp->wpt_flags.new_trkseg = 1; + } } /* Track Point */ @@ -1589,7 +1593,7 @@ LowranceusrFormat::lowranceusr_trail_hdr(const route_head* trk) gbfputint16(num_trail_points, file_out); gbfputint16(max_trail_size, file_out); gbfputint16(num_section_points, file_out); - trail_point_count=1; + trail_point_count=0; } void @@ -1689,7 +1693,8 @@ LowranceusrFormat::lowranceusr4_route_trl(const route_head* /*unused*/) const void LowranceusrFormat::lowranceusr_trail_disp(const Waypoint* wpt) { - if (trail_point_count <= MAX_TRAIL_POINTS) { + if (trail_point_count < MAX_TRAIL_POINTS) { + trail_point_count++; int lat = lat_deg_to_mm(wpt->latitude); int lon = lon_deg_to_mm(wpt->longitude); @@ -1699,11 +1704,15 @@ LowranceusrFormat::lowranceusr_trail_disp(const Waypoint* wpt) gbfputint32(lat, file_out); gbfputint32(lon, file_out); - gbfwrite(&continuous, 1, 1, file_out); - if (!continuous) { - continuous = 1; - } - trail_point_count++; + /* If this isn't the first point in the outgoing trail, and + * i) the source wpt was the start of a new track segment or + * ii) the source wpt is the first waypoint of a track that is being merged + * then set the continuous flag to 0 to indicate a discontinuity. + * Otherwise set the continous flag to 1. + */ + char continuous_flag = !((trail_point_count > 1) && (wpt->wpt_flags.new_trkseg || merge_new_track)); + merge_new_track = false; + gbfwrite(&continuous_flag, 1, 1, file_out); } } @@ -1757,7 +1766,7 @@ LowranceusrFormat::lowranceusr_merge_trail_tlr(const route_head* /*unused*/) void LowranceusrFormat::lowranceusr_merge_trail_hdr_2(const route_head* /*unused*/) { - continuous = 0; + merge_new_track = true; } void @@ -2038,6 +2047,7 @@ LowranceusrFormat::write() gbfputint16(NumTrails, file_out); if (NumTrails) { trail_count=0; + merge_new_track = false; auto lowranceusr_trail_disp_lambda = [this](const Waypoint* waypointp)->void { lowranceusr_trail_disp(waypointp); }; diff --git a/lowranceusr.h b/lowranceusr.h index efeb6e310..98c21ef69 100644 --- a/lowranceusr.h +++ b/lowranceusr.h @@ -457,7 +457,7 @@ private: unsigned short waypt_out_count{}; int trail_count{}, lowrance_route_count{}; int trail_point_count{}; - char continuous = 1; + bool merge_new_track{false}; short num_section_points{}; char* merge{}; int reading_version{}; diff --git a/reference/lowrance-v2-merge~usr.gpx b/reference/lowrance-v2-merge~usr.gpx new file mode 100644 index 000000000..1cccf20f4 --- /dev/null +++ b/reference/lowrance-v2-merge~usr.gpx @@ -0,0 +1,3766 @@ + + + + + + + Belle River Ridge + Belle River Ridge + Belle River Ridge + diamond 1 + + + + Dumping Ground + Dumping Ground + Dumping Ground + diamond 1 + + + + 001 + 001 + 001 + diamond 1 + + + + 002 + 002 + 002 + diamond 1 + + + + 003 + 003 + 003 + diamond 1 + + + + 004 + 004 + 004 + diamond 1 + + + + 005 + 005 + 005 + diamond 1 + + + + 006 + 006 + 006 + diamond 1 + + + + 007 + 007 + 007 + diamond 1 + + + + 008 + 008 + 008 + diamond 1 + + + + S + S + S + diamond 1 + + + + Dlphn Dprk + Dlphn Dprk + Dlphn Dprk + diamond 1 + + + + Delphine10 + Delphine10 + Delphine10 + diamond 1 + + + + Church Mrn + Church Mrn + Church Mrn + diamond 1 + + + + Del 3Can R + Del 3Can R + Del 3Can R + diamond 1 + + + + Trgh Rkpil + Trgh Rkpil + Trgh Rkpil + diamond 1 + + + + Cn Grspt Shl + Cn Grspt Shl + Cn Grspt Shl + diamond 1 + + + + Gpt Frm Wd + Gpt Frm Wd + Gpt Frm Wd + diamond 1 + + + + Aba1Old + Aba1Old + Aba1Old + fish + + + + Aba4 + Aba4 + Aba4 + fish + + + + Gpyc Wdbed + Gpyc Wdbed + Gpyc Wdbed + diamond 1 + + + + Lman 5Rock + Lman 5Rock + Lman 5Rock + diamond 1 + + + + Lman 5R N + Lman 5R N + Lman 5R N + diamond 1 + + + + Mansion 12 + Mansion 12 + Mansion 12 + diamond 1 + + + + 9Ml Rk Pil + 9Ml Rk Pil + 9Ml Rk Pil + diamond 1 + + + + 9Ml Spintp + 9Ml Spintp + 9Ml Spintp + diamond 1 + + + + Bwal Beds1 + Bwal Beds1 + Bwal Beds1 + diamond 1 + + + + 11Mi Wh Rk + 11Mi Wh Rk + 11Mi Wh Rk + diamond 1 + + + + Bsw 14 1 + Bsw 14 1 + Bsw 14 1 + diamond 1 + + + + Bluswl Way13 + Bluswl Way13 + Bluswl Way13 + diamond 1 + + + + Lmarker + Lmarker + Lmarker + diamond 1 + + + + Cn Memprk Rk + Cn Memprk Rk + Cn Memprk Rk + airplane + + + + Cn Memprk R2 + Cn Memprk R2 + Cn Memprk R2 + airplane + + + + 12Mile Cn + 12Mile Cn + 12Mile Cn + diamond 1 + + + + Wht Pav 8F + Wht Pav 8F + Wht Pav 8F + diamond 1 + + + + Crmr9Plt1 + Crmr9Plt1 + Crmr9Plt1 + tree stand + + + + Cfmr9Plt2 + Cfmr9Plt2 + Cfmr9Plt2 + tree stand + + + + 700 4 Hump + 700 4 Hump + 700 4 Hump + x 3 + + + + Pthurn Cn1 + Pthurn Cn1 + Pthurn Cn1 + diamond 1 + + + + Cn Clnt Flat + Cn Clnt Flat + Cn Clnt Flat + diamond 1 + + + + Bet-Crbc Wrk + Bet-Crbc Wrk + Bet-Crbc Wrk + wreck + + + + Jefs Bigrk + Jefs Bigrk + Jefs Bigrk + x 3 + + + + 011 + 011 + 011 + two fish + + + + 012 + 012 + 012 + two fish + + + + Mch Outbrk + Mch Outbrk + Mch Outbrk + diamond 1 + + + + Mg Midchrck + Mg Midchrck + Mg Midchrck + diamond 1 + + + + Old Ch Gap + Old Ch Gap + Old Ch Gap + diamond 1 + + + + Oldsth Wd7 + Oldsth Wd7 + Oldsth Wd7 + diamond 1 + + + + 12Rk Clsrhmp + 12Rk Clsrhmp + 12Rk Clsrhmp + diamond 1 + + + + 12Rk Sml + 12Rk Sml + 12Rk Sml + diamond 1 + + + + 12Rk Closhmp + 12Rk Closhmp + 12Rk Closhmp + diamond 1 + + + + 12Rk Bigi + 12Rk Bigi + 12Rk Bigi + diamond 1 + + + + Wpt 042* + Wpt 042* + Wpt 042* + fish + + + + Wpt 043* + Wpt 043* + Wpt 043* + fish + + + + Wpt 044* + Wpt 044* + Wpt 044* + fish + + + + 009 + 009 + 009 + diamond 1 + + + + 010 + 010 + 010 + diamond 1 + + + + 013 + 013 + 013 + diamond 1 + + + + 014 + 014 + 014 + diamond 1 + + + + 015 + 015 + 015 + diamond 1 + + + + 016 + 016 + 016 + diamond 1 + + + + 017 + 017 + 017 + diamond 1 + + + + 018 + 018 + 018 + diamond 1 + + + + 019 + 019 + 019 + diamond 1 + + + + 020 + 020 + 020 + diamond 1 + + + + 021 + 021 + 021 + diamond 1 + + + + 012 + 012 + 012 + diamond 1 + + + Event Marker 1 + Event Marker 1 + Event Marker 1 + diamond 1 + + + Event Marker 2 + Event Marker 2 + Event Marker 2 + diamond 1 + + + Trail 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reference/lowrance-v2.gpx b/reference/lowrance-v2.gpx new file mode 100644 index 000000000..d56df6a1a --- /dev/null +++ b/reference/lowrance-v2.gpx @@ -0,0 +1,3770 @@ + + + + + + + Belle River Ridge + Belle River Ridge + Belle River Ridge + diamond 1 + + + + Dumping Ground + Dumping Ground + Dumping Ground + diamond 1 + + + + 001 + 001 + 001 + diamond 1 + + + + 002 + 002 + 002 + diamond 1 + + + + 003 + 003 + 003 + diamond 1 + + + + 004 + 004 + 004 + diamond 1 + + + + 005 + 005 + 005 + diamond 1 + + + + 006 + 006 + 006 + diamond 1 + + + + 007 + 007 + 007 + diamond 1 + + + + 008 + 008 + 008 + diamond 1 + + + + S + S + S + diamond 1 + + + + Dlphn Dprk + Dlphn Dprk + Dlphn Dprk + diamond 1 + + + + Delphine10 + Delphine10 + Delphine10 + diamond 1 + + + + Church Mrn + Church Mrn + Church Mrn + diamond 1 + + + + Del 3Can R + Del 3Can R + Del 3Can R + diamond 1 + + + + Trgh Rkpil + Trgh Rkpil + Trgh Rkpil + diamond 1 + + + + Cn Grspt Shl + Cn Grspt Shl + Cn Grspt Shl + diamond 1 + + + + Gpt Frm Wd + Gpt Frm Wd + Gpt Frm Wd + diamond 1 + + + + Aba1Old + Aba1Old + Aba1Old + fish + + + + Aba4 + Aba4 + Aba4 + fish + + + + Gpyc Wdbed + Gpyc Wdbed + Gpyc Wdbed + diamond 1 + + + + Lman 5Rock + Lman 5Rock + Lman 5Rock + diamond 1 + + + + Lman 5R N + Lman 5R N + Lman 5R N + diamond 1 + + + + Mansion 12 + Mansion 12 + Mansion 12 + diamond 1 + + + + 9Ml Rk Pil + 9Ml Rk Pil + 9Ml Rk Pil + diamond 1 + + + + 9Ml Spintp + 9Ml Spintp + 9Ml Spintp + diamond 1 + + + + Bwal Beds1 + Bwal Beds1 + Bwal Beds1 + diamond 1 + + + + 11Mi Wh Rk + 11Mi Wh Rk + 11Mi Wh Rk + diamond 1 + + + + Bsw 14 1 + Bsw 14 1 + Bsw 14 1 + diamond 1 + + + + Bluswl Way13 + Bluswl Way13 + Bluswl Way13 + diamond 1 + + + + Lmarker + Lmarker + Lmarker + diamond 1 + + + + Cn Memprk Rk + Cn Memprk Rk + Cn Memprk Rk + airplane + + + + Cn Memprk R2 + Cn Memprk R2 + Cn Memprk R2 + airplane + + + + 12Mile Cn + 12Mile Cn + 12Mile Cn + diamond 1 + + + + Wht Pav 8F + Wht Pav 8F + Wht Pav 8F + diamond 1 + + + + Crmr9Plt1 + Crmr9Plt1 + Crmr9Plt1 + tree stand + + + + Cfmr9Plt2 + Cfmr9Plt2 + Cfmr9Plt2 + tree stand + + + + 700 4 Hump + 700 4 Hump + 700 4 Hump + x 3 + + + + Pthurn Cn1 + Pthurn Cn1 + Pthurn Cn1 + diamond 1 + + + + Cn Clnt Flat + Cn Clnt Flat + Cn Clnt Flat + diamond 1 + + + + Bet-Crbc Wrk + Bet-Crbc Wrk + Bet-Crbc Wrk + wreck + + + + Jefs Bigrk + Jefs Bigrk + Jefs Bigrk + x 3 + + + + 011 + 011 + 011 + two fish + + + + 012 + 012 + 012 + two fish + + + + Mch Outbrk + Mch Outbrk + Mch Outbrk + diamond 1 + + + + Mg Midchrck + Mg Midchrck + Mg Midchrck + diamond 1 + + + + Old Ch Gap + Old Ch Gap + Old Ch Gap + diamond 1 + + + + Oldsth Wd7 + Oldsth Wd7 + Oldsth Wd7 + diamond 1 + + + + 12Rk Clsrhmp + 12Rk Clsrhmp + 12Rk Clsrhmp + diamond 1 + + + + 12Rk Sml + 12Rk Sml + 12Rk Sml + diamond 1 + + + + 12Rk Closhmp + 12Rk Closhmp + 12Rk Closhmp + diamond 1 + + + + 12Rk Bigi + 12Rk Bigi + 12Rk Bigi + diamond 1 + + + + Wpt 042* + Wpt 042* + Wpt 042* + fish + + + + Wpt 043* + Wpt 043* + Wpt 043* + fish + + + + Wpt 044* + Wpt 044* + Wpt 044* + fish + + + + 009 + 009 + 009 + diamond 1 + + + + 010 + 010 + 010 + diamond 1 + + + + 013 + 013 + 013 + diamond 1 + + + + 014 + 014 + 014 + diamond 1 + + + + 015 + 015 + 015 + diamond 1 + + + + 016 + 016 + 016 + diamond 1 + + + + 017 + 017 + 017 + diamond 1 + + + + 018 + 018 + 018 + diamond 1 + + + + 019 + 019 + 019 + diamond 1 + + + + 020 + 020 + 020 + diamond 1 + + + + 021 + 021 + 021 + diamond 1 + + + + 012 + 012 + 012 + diamond 1 + + + Event Marker 1 + Event Marker 1 + Event Marker 1 + diamond 1 + + + Event Marker 2 + Event Marker 2 + Event Marker 2 + diamond 1 + + + Trail 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Trail 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testo.d/lowranceusr.test b/testo.d/lowranceusr.test index e35692ffa..c6592c364 100644 --- a/testo.d/lowranceusr.test +++ b/testo.d/lowranceusr.test @@ -152,3 +152,16 @@ gpsbabel -i lowranceusr -f ${REFERENCE}/lowrance-v6.usr -o unicsv,utc=0 -F ${TMP tail -n +2 ${TMPDIR}/lowrance-v6-unicsv.txt | sed "s/[0-9]*,//" | sort -t , -k 3 > ${TMPDIR}/lowrance-v6-unicsv-sorted.txt compare ${TMPDIR}/lowrance-v4-unicsv-sorted.txt ${TMPDIR}/lowrance-v6-unicsv-sorted.txt +# test translation of version 2, 3 continuous flag to new track segments. +# 1. when reading usr files can we translate the contiuous flag in a usr file to track segments? +gpsbabel -i lowranceusr -f ${REFERENCE}/lowrance-v2.usr -o gpx -F ${TMPDIR}/lowrance-v2.gpx +compare ${REFERENCE}/lowrance-v2.gpx ${TMPDIR}/lowrance-v2.gpx +# 2. if so, when writing a usr file can we translate a track segment to the continuous flag in the usr file? +gpsbabel -i gpx -f ${REFERENCE}/lowrance-v2.gpx -o lowranceusr -F ${TMPDIR}/lowrance-v2~gpx.usr +gpsbabel -i lowranceusr -f ${TMPDIR}/lowrance-v2~gpx.usr -o gpx -F ${TMPDIR}/lowrance-v2~usr.gpx +compare ${REFERENCE}/lowrance-v2.gpx ${TMPDIR}/lowrance-v2~usr.gpx +# 3. can we get the track segments correct when we do a merge? +gpsbabel -i gpx -f ${REFERENCE}/lowrance-v2.gpx -o lowranceusr,merge -F ${TMPDIR}/lowrance-v2-merge~gpx.usr +gpsbabel -i lowranceusr -f ${TMPDIR}/lowrance-v2-merge~gpx.usr -o gpx -F ${TMPDIR}/lowrance-v2-merge~usr.gpx +compare ${REFERENCE}/lowrance-v2-merge~usr.gpx ${TMPDIR}/lowrance-v2-merge~usr.gpx + -- 2.30.2